Depending on the type of product you are using, the definitions of ‘Parameter’, ‘IO Logic’, ‘AxisStatus’, etc. may be different. This example is based on ‘Ezi-SERVO2’, so please apply the appropriate value depending on the product you are using.
Example)
FM_EZISERVO2_PARAM // Parameter enum when using 'Ezi-SERVO2'
FM_EZIMOTIONLINK2_PARAM // Parameter enum when using 'Ezi-MOTIONLINK2'
[EN]
1. Connect a device. 2. Check the drive error. 3. Enable Servo. 4. Operate the motor with Linear interpolation move (incremental position). 5. Operate the motor with Linear interpolation move (absolute position). 6. Close connection.
[KR]
1. 장치 연결. 2. 드라이브 에러 체크. 3. Servo Enable. 4. 직선 보간 이송 (상대 좌표). 5. 직선 보간 이송 (절대 좌표). 6. 연결 해제.
// Check Drive's Error
EZISERVO2_AXISSTATUS AxisStatus;
if (FAS_GetAxisStatus(nBdID, &(AxisStatus.dwValue)) != FMM_OK)
{"[nBdID : %d ] Function(FAS_GetAxisStatus) was failed.\n", nBdID);
printf(return false;
}
if (AxisStatus.FFLAG_ERRORALL)
{// if Drive's Error was detected, Reset the ServoAlarm
if (FAS_ServoAlarmReset(nBdID) != FMM_OK)
{"[nBdID : %d ] Function(FAS_ServoAlarmReset) was failed.\n", nBdID);
printf(return false;
}
}
return true;
[EN]
You can check the current drive’s operating status using the FAS_GetAxisStatus() function. You can reset the current drive’s alarm status using the FAS_ServoAlarmReset() function.
[KR]
FAS_GetAxisStatus() 함수를 사용하여 현재 드라이브의 운전 상태를 확인 할 수 있습니다. FAS_ServoAlarmReset() 함수를 사용하여 현재 드라이브의 알람상태를 리셋 할 수 있습니다.
[EN]
EZISERVO2_AXISSTATUS is a structure that organizes drive status values. It can be checked in the header file (MOTION_EziSERVO2_DEFINE.h).
[KR]
EZISERVO2_AXISSTATUS 는 드라이브 상태값이 정리된 구조체이며 헤더파일 (MOTION_EziSERVO2_DEFINE.h)에서 확인하실 수 있습니다.
// Move Linear IncPos
int lIncPos[2] = { 370000, 370000 };
int lVelocity = 0;
unsigned short wAccelTime = 100;
"---------------------------\n");
printf(// Increase the motor by 370000 pulse (target position : Relative position)
40000;
lVelocity =
"[Linear Inc Mode] Move Motor! \n");
printf(
if (FAS_MoveLinearIncPos2(SLAVE_CNT, nBdID, lIncPos, lVelocity, wAccelTime) != FMM_OK)
{"Function(FAS_MoveLinearIncPos2) was failed.\n");
printf(return false;
}
[EN]
You can perform incremental position linear interpolation movement using the FAS_MoveLinearIncPos2() function. Meaning of each argument in the function is as follows sequentially: ‘Number of drives to linearly interpolate’, ‘ID array of drives’, ‘Coordinate array’, ‘Speed’, ‘Acceleration/deceleration time’
[KR]
FAS_MoveLinearIncPos2() 함수를 사용하여 상대 좌표 직선 보간 이송을 수행할 수 있습니다. 해당 함수의 각 인자는 순차적으로 다음을 의미합니다. ‘직선 보간할 드라이브의 수’, ‘드라이브들의 ID배열’, ‘좌표 배열’, ‘속도’, ‘가감속 시간’
// Move Linear AbsPos
int lAbsPos[2] = { 0, 0 };
int lVelocity = 0;
unsigned short wAccelTime = 100;
"---------------------------\n");
printf(
// Move the motor by 0 pulse (target position : Absolute position)
40000;
lVelocity =
"[Linear Abs Mode] Move Motor! \n");
printf(if (FAS_MoveLinearAbsPos2(SLAVE_CNT, nBdID, lAbsPos, lVelocity, wAccelTime) != FMM_OK)
{"Function(FAS_MoveLinearAbsPos2) was failed.\n");
printf(return false;
}
[EN]
You can perform absolute position linear interpolation using the FAS_MoveLinearIncPos2() function. It has same argument as ‘Incremental position linear interpolation’.
[KR]
FAS_MoveLinearIncPos2() 함수를 사용하여 절대 좌표 직선 보간 이송을 수행할 수 있습니다. 해당 함수의 각 인자는 ’상대 좌표 직선 보간 이송’과 동일합니다.
[EN]
1. For function descriptions on device connection and disconnection, please refer to the [01.ConnectionExam] project document. 2. For function descriptions on driver error check, please refer to the [05.JogMovementExam] project document.
[KR]
1. 장치 연결 및 해제에 대한 함수 설명은 [01.ConnectionExam] 프로젝트 문서를 참고하시기 바랍니다. 2. 드라이버 에러 체크에 대한 함수 설명은 [05.JogMovementExam] 프로젝트 문서를 참고하시기 바랍니다.